const express = require('express');
var router = express.Router();
var db = require('../../mysqldb');
const crypto = require('crypto');
const saltKey = '123456';
module.exports = (app)=>{
    app.use('/admin',router);
};

//拦截
router.all('/*',function(req,res,next){
    // console.log(sha256('gyhk2020'))
    if(!req.session.UserName){
        var arr = req.url.split('/');
        for (var i = 0, length = arr.length; i < length; i++) {// 去除 GET 请求路径上携带的参数
            arr[i] = arr[i].split('?')[0];
          }
          if(arr[1] == 'login'){
              next();
          }else{
              //res.send({ret:false})
              res.setHeader("Content-Type", "text/html")
              res.redirect('/iadmin/login')
          }
    }else{
        next();
    }
})

//登录接口
router.post('/login',(req,res,next)=>{
    //获取body内容
    var PassWord =  sha256(req.body.PassWord);
    db(`select * from AdminUsers where UserName='${req.body.UserName}'`,(err,rows)=>{
        if(err) {res.send({ret:false,data:err});}
        if(rows.length>0){
            if(rows[0].PassWord == PassWord){
                req.session.UserName = req.body.UserName;
                res.send({ret:true,data:'登录成功'})
            }else{
               res.send({ret:false,data:'密码错误'})
            }
        }else{
            res.send({ret:false,data:'没有此用户'})
        }
    });
})

//注销接口
router.get('/layout',function(req,res,next){
    req.session.UserName = null; // 删除session
    res.send({ret:true})
    //res.redirect('/admin/login');
})

//判断是否登陆
router.post('/islogin',function(req,res,next){
    if(!req.session.UserName){
        res.send({ret:false})   //未登录
    }else{
        res.send({ret:true})   //已经登陆
    }
})

//渲染login页面
// router.get('/login',(req,res,next)=>{
//     res.render('./views/admin/login')
//     // const shou1 = new Promise((resolve,reject)=>{
//     //     db("select * from News",function(err,vals,fields){
//     //         if(err){
//     //             reject(err) 
//     //         }
//     //         resolve(vals)
//     //     });
//     // })
//     // const shou2=  new Promise((resolve,reject)=>{
//     //     db("select * from AdminUsers",function(err,vals,fields){
//     //         if(err){
//     //             reject(err) 
//     //         }
//     //         resolve(vals)
//     //     });
//     // })
//     // Promise.all([shou1,shou2]).then((data)=>{
//     //     console.log(data)
//     // })
    
// })

//sha255加密
const sha256 = str => {
    return crypto.createHmac('sha256', '123456')
        .update(str, 'utf8')
        .digest('hex'); 
}

